using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using SystemFrameworks;
using Microsoft.ApplicationBlocks.Data;
using Common; using MinCultura.Sipa.DataAccess.EntidadesArtes;
using SystemFrameworks;

namespace MinCultura.Sipa.EntidadesArtes
{
	/// <summary>
	/// Clase de acceso a datos para la entidad ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS
	/// </summary>
	public class InfraestructuraEntidadesServicios
	{
		#region Private Data Access Atributes

		private const String INF_ID_PARAM = "@INF_ID";
		private const String INF_NUMERO_BANOS_PUBLICO_PARAM = "@INF_NUMERO_BANOS_PUBLICO";
		private const String INF_NUMERO_SALIDAS_EMERGENCIA_PARAM = "@INF_NUMERO_SALIDAS_EMERGENCIA";
		private const String INF_TIENE_RAMPAS_DISCAPACITADOS_PARAM = "@INF_TIENE_RAMPAS_DISCAPACITADOS";
		private const String INF_TIENE_CAMERINOS_PARAM = "@INF_TIENE_CAMERINOS";
		private const String INF_NUMERO_CAMERINOS_INDIVIDUALES_PARAM = "@INF_NUMERO_CAMERINOS_INDIVIDUALES";
		private const String INF_NUMERO_CAMERINOS_COLECTIVOS_PARAM = "@INF_NUMERO_CAMERINOS_COLECTIVOS";
		private const String INF_NUMERO_BANOS_ARTISTAS_PARAM = "@INF_NUMERO_BANOS_ARTISTAS";
		private const String INF_NUMERO_DUCHAS_PARAM = "@INF_NUMERO_DUCHAS";
		private const String INF_NUMERO_SALAS_ENSAYO_PARAM = "@INF_NUMERO_SALAS_ENSAYO";
		private const String INF_TIENE_LINOLEO_PARAM = "@INF_TIENE_LINOLEO";
		private const String INF_TIENE_DEPOSITOS_PARAM = "@INF_TIENE_DEPOSITOS";
		private const String INF_TIENE_TALLERES_PARAM = "@INF_TIENE_TALLERES";
		private const String INF_TIENE_PLAN_EMERGENCIA_PARAM = "@INF_TIENE_PLAN_EMERGENCIA";
		private const String INF_TIENE_SENALIZACION_EVACUACION_PARAM = "@INF_TIENE_SENALIZACION_EVACUACION";
		private const String INF_TIENE_ENFERMERIA_PARAM = "@INF_TIENE_ENFERMERIA";
		private const String INF_TIENE_BOTIQUIN_PARAM = "@INF_TIENE_BOTIQUIN";
		private const String INF_NUMERO_EXTINTORES_PARAM = "@INF_NUMERO_EXTINTORES";
		private const String INF_TIENE_PLANTA_ENERGIA_PARAM = "@INF_TIENE_PLANTA_ENERGIA";

		#endregion Private Data Access Atributes

		/// <summary>
		/// Constructor de la clase ARTINFRAESTRUCTURAENTIDADESSERVICIOS
		/// </summary>
		public InfraestructuraEntidadesServicios(string strCadenaConecxion)
        {
            ConnectionString = strCadenaConecxion;
        }
        #region ConnectionString

        private string _cadenaConexion;

        public string ConnectionString
        {
            get { return _cadenaConexion; }
            set { _cadenaConexion = value; }
        }

        #endregion

		public InfraestructuraEntidadesServiciosData BuscarInfraestructuraEntidadesServicios()
		{
			InfraestructuraEntidadesServiciosData response = new InfraestructuraEntidadesServiciosData();
			SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", response);
			if (response.Rows.Count == 0)
				return null;
			return response;
		}


		public InfraestructuraEntidadesServiciosData ConsultarInfraestructuraEntidadesServicios(decimal parINF_ID)
		{
			InfraestructuraEntidadesServiciosData response = new InfraestructuraEntidadesServiciosData();

			SqlParameter param1 = new SqlParameter(INF_ID_PARAM, parINF_ID);

			SqlParameter[] parameters = {param1};
			SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", response, parameters);
			if (response.Rows.Count == 0)
				return null;
			return response;
		}

		private void Adicionar(InfraestructuraEntidadesServiciosData datos, params SqlTransaction[] transaccion)
		{
			try
			{
				foreach (DataRow row in datos.Rows)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, row[InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);
					SqlParameter param2 = new SqlParameter(INF_NUMERO_BANOS_PUBLICO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_BANOS_PUBLICO_FIELD]);
					SqlParameter param3 = new SqlParameter(INF_NUMERO_SALIDAS_EMERGENCIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_SALIDAS_EMERGENCIA_FIELD]);
					SqlParameter param4 = new SqlParameter(INF_TIENE_RAMPAS_DISCAPACITADOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_RAMPAS_DISCAPACITADOS_FIELD]);
					SqlParameter param5 = new SqlParameter(INF_TIENE_CAMERINOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_CAMERINOS_FIELD]);
					SqlParameter param6 = new SqlParameter(INF_NUMERO_CAMERINOS_INDIVIDUALES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_CAMERINOS_INDIVIDUALES_FIELD]);
					SqlParameter param7 = new SqlParameter(INF_NUMERO_CAMERINOS_COLECTIVOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_CAMERINOS_COLECTIVOS_FIELD]);
					SqlParameter param8 = new SqlParameter(INF_NUMERO_BANOS_ARTISTAS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_BANOS_ARTISTAS_FIELD]);
					SqlParameter param9 = new SqlParameter(INF_NUMERO_DUCHAS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_DUCHAS_FIELD]);
					SqlParameter param10 = new SqlParameter(INF_NUMERO_SALAS_ENSAYO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_SALAS_ENSAYO_FIELD]);
					SqlParameter param11 = new SqlParameter(INF_TIENE_LINOLEO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_LINOLEO_FIELD]);
					SqlParameter param12 = new SqlParameter(INF_TIENE_DEPOSITOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_DEPOSITOS_FIELD]);
					SqlParameter param13 = new SqlParameter(INF_TIENE_TALLERES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_TALLERES_FIELD]);
					SqlParameter param14 = new SqlParameter(INF_TIENE_PLAN_EMERGENCIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_PLAN_EMERGENCIA_FIELD]);
					SqlParameter param15 = new SqlParameter(INF_TIENE_SENALIZACION_EVACUACION_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_SENALIZACION_EVACUACION_FIELD]);
					SqlParameter param16 = new SqlParameter(INF_TIENE_ENFERMERIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_ENFERMERIA_FIELD]);
					SqlParameter param17 = new SqlParameter(INF_TIENE_BOTIQUIN_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_BOTIQUIN_FIELD]);
					SqlParameter param18 = new SqlParameter(INF_NUMERO_EXTINTORES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_EXTINTORES_FIELD]);
					SqlParameter param19 = new SqlParameter(INF_TIENE_PLANTA_ENERGIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_PLANTA_ENERGIA_FIELD]);

					SqlParameter[] parameters = {param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, 
																				param11, param12, param13, param14, param15, param16, param17, param18, param19};

					if (transaccion.Length > 0)
					{
						SqlHelper.ExecuteNonQuery(transaccion[0], CommandType.StoredProcedure, "PAS_ADICIONAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
					}
					else
					{
						SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ADICIONAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
					}

				}

			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
		}

		public void Adicionar(InfraestructuraEntidadesServiciosData datos,
													InfraestructuraBoleteriaData datosBoleta,
													InfraestructuraFormasPagoData datosFormasPago,
													InfraestructuraSalonesEstarData datosEstar,
													InfraestructuraDepositosData datosDepositos,
													InfraestructuraTalleresData datosTalleres)
		{
            InfraestructuraBoleteria objBoleta = new InfraestructuraBoleteria(ConnectionString);
            InfraestructuraFormasPago objFormasPago = new InfraestructuraFormasPago(ConnectionString);
            InfraestructuraSalonesEstar objEstar = new InfraestructuraSalonesEstar(ConnectionString);
            InfraestructuraDepositos objDepositos = new InfraestructuraDepositos(ConnectionString);
            InfraestructuraTalleres objTalleres = new InfraestructuraTalleres(ConnectionString);

			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);

				Adicionar(datos);
				objBoleta.AdicionarInfraestructuraBoleteria(datosBoleta, decINF_ID);
				objFormasPago.AdicionarInfraestructuraFormasPago(datosFormasPago, decINF_ID);
				objEstar.AdicionarInfraestructuraSalonesEstar(datosEstar, decINF_ID);
				objDepositos.AdicionarInfraestructuraDepositos(datosDepositos, decINF_ID);
				objTalleres.AdicionarInfraestructuraTalleres(datosTalleres, decINF_ID);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
		}

		/// <summary>
		/// Sobrecarga de AdicionarInfraestructuraEntidadesServicios
		/// </summary>
		/// <param name="datos">DataTable con los campos a insertar en la entidad ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS</param>
		/// <param name="datosBoleta"></param>
		/// <param name="datosEstar"></param>
		/// <param name="datosDepositos"></param>
		/// <param name="datosTalleres"></param>
		public void AdicionarInfraestructuraEntidadesServicios(InfraestructuraEntidadesServiciosData datos,
		                                                       InfraestructuraBoleteriaData datosBoleta,
		                                                       InfraestructuraFormasPagoData datosFormasPago,
		                                                       InfraestructuraSalonesEstarData datosEstar,
		                                                       InfraestructuraDepositosData datosDepositos,
		                                                       InfraestructuraTalleresData datosTalleres)
		{
            InfraestructuraBoleteria objBoleta = new InfraestructuraBoleteria(ConnectionString);
            InfraestructuraFormasPago objFormasPago = new InfraestructuraFormasPago(ConnectionString);
            InfraestructuraSalonesEstar objEstar = new InfraestructuraSalonesEstar(ConnectionString);
            InfraestructuraDepositos objDepositos = new InfraestructuraDepositos(ConnectionString);
            InfraestructuraTalleres objTalleres = new InfraestructuraTalleres(ConnectionString);

			SqlConnection objCon = new SqlConnection(this.ConnectionString);
			objCon.Open();
			SqlTransaction objTran = objCon.BeginTransaction(IsolationLevel.Serializable);
			
			try
			{
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);

				Adicionar(datos,objTran);
				objBoleta.AdicionarInfraestructuraBoleteria(datosBoleta, decINF_ID, objTran);
				objFormasPago.AdicionarInfraestructuraFormasPago(datosFormasPago, decINF_ID, objTran);
				objEstar.AdicionarInfraestructuraSalonesEstar(datosEstar, decINF_ID, objTran);
				objDepositos.AdicionarInfraestructuraDepositos(datosDepositos, decINF_ID, objTran);
				objTalleres.AdicionarInfraestructuraTalleres(datosTalleres, decINF_ID, objTran);

				objTran.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
			finally
			{
				objCon.Close();
			}
		}

		private void Actualizar(InfraestructuraEntidadesServiciosData datos, params SqlTransaction[] transaccion)
		{
			try
			{
				foreach (DataRow row in datos.Rows)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, row[InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);
					SqlParameter param2 = new SqlParameter(INF_NUMERO_BANOS_PUBLICO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_BANOS_PUBLICO_FIELD]);
					SqlParameter param3 = new SqlParameter(INF_NUMERO_SALIDAS_EMERGENCIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_SALIDAS_EMERGENCIA_FIELD]);
					SqlParameter param4 = new SqlParameter(INF_TIENE_RAMPAS_DISCAPACITADOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_RAMPAS_DISCAPACITADOS_FIELD]);
					SqlParameter param5 = new SqlParameter(INF_TIENE_CAMERINOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_CAMERINOS_FIELD]);
					SqlParameter param6 = new SqlParameter(INF_NUMERO_CAMERINOS_INDIVIDUALES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_CAMERINOS_INDIVIDUALES_FIELD]);
					SqlParameter param7 = new SqlParameter(INF_NUMERO_CAMERINOS_COLECTIVOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_CAMERINOS_COLECTIVOS_FIELD]);
					SqlParameter param8 = new SqlParameter(INF_NUMERO_BANOS_ARTISTAS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_BANOS_ARTISTAS_FIELD]);
					SqlParameter param9 = new SqlParameter(INF_NUMERO_DUCHAS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_DUCHAS_FIELD]);
					SqlParameter param10 = new SqlParameter(INF_NUMERO_SALAS_ENSAYO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_SALAS_ENSAYO_FIELD]);
					SqlParameter param11 = new SqlParameter(INF_TIENE_LINOLEO_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_LINOLEO_FIELD]);
					SqlParameter param12 = new SqlParameter(INF_TIENE_DEPOSITOS_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_DEPOSITOS_FIELD]);
					SqlParameter param13 = new SqlParameter(INF_TIENE_TALLERES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_TALLERES_FIELD]);
					SqlParameter param14 = new SqlParameter(INF_TIENE_PLAN_EMERGENCIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_PLAN_EMERGENCIA_FIELD]);
					SqlParameter param15 = new SqlParameter(INF_TIENE_SENALIZACION_EVACUACION_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_SENALIZACION_EVACUACION_FIELD]);
					SqlParameter param16 = new SqlParameter(INF_TIENE_ENFERMERIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_ENFERMERIA_FIELD]);
					SqlParameter param17 = new SqlParameter(INF_TIENE_BOTIQUIN_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_BOTIQUIN_FIELD]);
					SqlParameter param18 = new SqlParameter(INF_NUMERO_EXTINTORES_PARAM, row[InfraestructuraEntidadesServiciosData.INF_NUMERO_EXTINTORES_FIELD]);
					SqlParameter param19 = new SqlParameter(INF_TIENE_PLANTA_ENERGIA_PARAM, row[InfraestructuraEntidadesServiciosData.INF_TIENE_PLANTA_ENERGIA_FIELD]);

					SqlParameter[] parameters = {param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19};
					if (transaccion.Length > 0)
					{
						SqlHelper.ExecuteNonQuery(transaccion[0], CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
					}
					else
					{
						SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
					}
				}
			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
		}


		public void Actualizar(InfraestructuraEntidadesServiciosData datos,
		                      InfraestructuraBoleteriaData datosBoleta,
													InfraestructuraFormasPagoData datosFormasPago,
		                      InfraestructuraSalonesEstarData datosEstar,
		                      InfraestructuraDepositosData datosDepositos,
		                      InfraestructuraTalleresData datosTalleres)
		{
            InfraestructuraBoleteria objBoleta = new InfraestructuraBoleteria(ConnectionString);
            InfraestructuraFormasPago objFormasPago = new InfraestructuraFormasPago(ConnectionString);
            InfraestructuraSalonesEstar objEstar = new InfraestructuraSalonesEstar(ConnectionString);
            InfraestructuraDepositos objDepositos = new InfraestructuraDepositos(ConnectionString);
            InfraestructuraTalleres objTalleres = new InfraestructuraTalleres(ConnectionString);
			
			try
			{				
				decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);
				Actualizar(datos);
				objBoleta.ActualizarInfraestructuraBoleteria(datosBoleta, decINF_ID);
				objFormasPago.ActualizarInfraestructuraFormasPago(datosFormasPago, decINF_ID);
				objEstar.ActualizarInfraestructuraSalonesEstar(datosEstar, decINF_ID);
				objDepositos.ActualizarInfraestructuraDepositos(datosDepositos, decINF_ID);
				objTalleres.ActualizarInfraestructuraTalleres(datosTalleres, decINF_ID);									
			}
			catch (Exception ex)
			{				
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
		}

		/// <summary>
		/// Sobrecarga con un nuevo parametro de entrada
		/// </summary>
		/// <param name="datos"></param>
		/// <param name="datosBoleta"></param>
		/// <param name="datosFormasPago"></param>
		/// <param name="datosEstar"></param>
		/// <param name="datosDepositos"></param>
		/// <param name="datosTalleres"></param>
		public void ActualizarInfraestructuraEntidadesServicios(InfraestructuraEntidadesServiciosData datos,
		                                                        InfraestructuraBoleteriaData datosBoleta,
		                                                        InfraestructuraFormasPagoData datosFormasPago,
		                                                        InfraestructuraSalonesEstarData datosEstar,
		                                                        InfraestructuraDepositosData datosDepositos,
		                                                        InfraestructuraTalleresData datosTalleres)
		{

            InfraestructuraBoleteria objBoleta = new InfraestructuraBoleteria(ConnectionString);
            InfraestructuraFormasPago objFormasPago = new InfraestructuraFormasPago(ConnectionString);
            InfraestructuraSalonesEstar objEstar = new InfraestructuraSalonesEstar(ConnectionString);
            InfraestructuraDepositos objDepositos = new InfraestructuraDepositos(ConnectionString);
            InfraestructuraTalleres objTalleres = new InfraestructuraTalleres(ConnectionString);

			SqlConnection objCon = new SqlConnection(this.ConnectionString);
			objCon.Open();
			SqlTransaction objTran = objCon.BeginTransaction(IsolationLevel.Serializable);

			decimal decINF_ID = Convert.ToDecimal(datos.Rows[0][InfraestructuraEntidadesServiciosData.INF_ID_FIELD]);

			try
			{
				Actualizar(datos,objTran);
				objBoleta.ActualizarInfraestructuraBoleteria(datosBoleta, decINF_ID, objTran);
				objFormasPago.ActualizarInfraestructuraFormasPago(datosFormasPago, decINF_ID, objTran);
				objEstar.ActualizarInfraestructuraSalonesEstar(datosEstar, decINF_ID, objTran);
				objDepositos.ActualizarInfraestructuraDepositos(datosDepositos, decINF_ID, objTran);
				objTalleres.ActualizarInfraestructuraTalleres(datosTalleres, decINF_ID, objTran);

				objTran.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTran.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
			finally
			{
				objCon.Close();
			}
		}

		/// <summary>
		/// Elimina un registro de la entidad Artinfraestructuraentidadesservicios
		/// </summary>
		/// <param name="parINF_ID">Identificador del registro
		public void EliminarInfraestructuraEntidadesServicios(decimal parINF_ID)
		{
			try
			{
				SqlParameter param1 = new SqlParameter(INF_ID_PARAM, parINF_ID);

				SqlParameter[] parameters = {param1};
				SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
			}
			catch (SqlException sqlEx)
			{
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
		}

		public void EliminarInfraestructuraEntidadesServicios(ArrayList arrIDs)
		{
			SqlConnection objConnection = new SqlConnection(ConnectionString);
			objConnection.Open();
			SqlTransaction objTrans = objConnection.BeginTransaction();

			try
			{
				foreach (object Item in arrIDs)
				{
					SqlParameter param1 = new SqlParameter(INF_ID_PARAM, decimal.Parse(Item.ToString()));
					SqlParameter[] parameters = {param1};
					SqlHelper.ExecuteNonQuery(objTrans, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS", parameters);
				}
				objTrans.Commit();
			}
			catch (SqlException sqlEx)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), sqlEx);
			}
			catch (Exception ex)
			{
				objTrans.Rollback();
				throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_INFRAESTRUCTURA_ENTIDADES_SERVICIOS"), ex);
			}
			finally
			{
				objConnection.Close();
			}
		}
	}
}